#ifndef __HEAD_H__
#define __HEAD_H__

// 导入系统头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include <ncurses.h>
#include <locale.h>
#include <wchar.h>

// 导入项目头文件
#include "head.h"
#include "user.h"
#include "login.h"
#include "teacher.h"
#include "student.h"
#include "T_list.h"
#include "S_list.h"
#include "system.h"


// 定义用户信息文件路径
#define FILE1 "data/students.txt"       // 学生数据文件
#define TEACHERS "data/teachers.txt"       // 教师数据文件
#define MESSAGES "data/messages.txt"       // 留言数据文件


// 错误输出宏定义，写入日志文件并显示在终端
#define ERRLOG(msg) do {     time_t now = time(NULL);     char *timestr = ctime(&now);     timestr[strlen(timestr) - 1] = '\0'; /* 去掉末尾的换行符 */     FILE *log_file = fopen(LOG_FILE, "a");     if (log_file) {         fprintf(log_file, "[%s] 错误: %s\t文件: %s\t函数: %s\t行号: %d\n\n",                 timestr, msg, __FILE__, __func__, __LINE__);         fclose(log_file);     } else {         fprintf(stderr, "错误: 无法打开日志文件: %s\n", LOG_FILE);     }     /* 输出到标准错误流 */     fprintf(stderr, "[%s] 错误: %s\t文件: %s\t函数: %s\t行号: %d\n",             timestr, msg, __FILE__, __func__, __LINE__); } while (0)

#endif
